package com.urbane.auth.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 用户基础信息 DTO（用于登录、查询等场景）
 * 特点：脱敏、轻量、只读
 */
@Data
public class UserBaseInfo {

    private Long id;
    private String username;      // 登录名，系统内部使用
    private String nickname;      // 显示名，前端展示
    private String avatar;        // 头像 URL
    private String email;         // 脱敏邮箱：z***@example.com
    private List<String> roles;   // 角色列表，用于前端权限判断
    private String level;         // 会员等级：NORMAL / GOLD / PLATINUM
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private LocalDateTime createdAt; // 注册时间

    // 构造函数省略，可由 Repository 自动映射
}